#pragma once
#include <iostream>
#include <util/Shared_ptr.h>
#include "Types.h"


namespace Boon
{

/*!
* Representing every Object in this project
*/
class BOON_API Object
{
public:
	Object();
	Object( const char* name );
	virtual	~Object(void);

public:

	void							SetName( const char* name );
	virtual const std::string&		GetName() const;
	const uint_32					GetUniqueObjectID() const;
	virtual void					Destroy() = 0;

private:
	std::string				m_Name; 			/*!< Name of a Object represented as a std::string */
	const uint_32			m_UniqueID; 		/*!< ID that is unique for all Objects */
};

}
